package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.system.domain.TbDevice;
import com.ruoyi.system.domain.TbDeviceApps;
import com.ruoyi.system.domain.TbDeviceInfo;
import com.ruoyi.system.domain.dto.AirPlaneAndDeviceDetailInfoAndDeviceIdsVO;
import com.ruoyi.system.domain.dto.AirPlaneAndDeviceInfoAndTotalDeviceIdsVO;
import com.ruoyi.system.domain.dto.ItemDTO;
import com.ruoyi.system.domain.vo.*;

/**
 * 设备安装应用信息Service接口
 * 
 * @author ruoyi
 * @date 2025-07-23
 */
public interface ITbDeviceAppsService 
{
    /**
     * 查询设备安装应用信息
     * 
     * @param id 设备安装应用信息主键
     * @return 设备安装应用信息
     */
    public TbDeviceApps selectTbDeviceAppsById(Long id);

    /**
     * 查询设备安装应用信息列表
     * 
     * @param tbDeviceApps 设备安装应用信息
     * @return 设备安装应用信息集合
     */
    public List<TbDeviceApps> selectTbDeviceAppsList(TbDeviceApps tbDeviceApps);

    /**
     * 新增设备安装应用信息
     * 
     * @param tbDeviceApps 设备安装应用信息
     * @return 结果
     */
    public int insertTbDeviceApps(TbDeviceApps tbDeviceApps);

    /**
     * 修改设备安装应用信息
     * 
     * @param tbDeviceApps 设备安装应用信息
     * @return 结果
     */
    public int updateTbDeviceApps(TbDeviceApps tbDeviceApps);

    /**
     * 批量删除设备安装应用信息
     * 
     * @param ids 需要删除的设备安装应用信息主键集合
     * @return 结果
     */
    public int deleteTbDeviceAppsByIds(Long[] ids);

    /**
     * 删除设备安装应用信息信息
     * 
     * @param id 设备安装应用信息主键
     * @return 结果
     */
    public int deleteTbDeviceAppsById(Long id);

    List<TbDeviceInfoVO> listBypackageVersioncode( ItemDTO dto);

    List<TbTaskDetailVO> listTaskBypackageVersioncode( ItemDTO dto);

    int updateAppStatus(Long catalogId);

    AviationAppStatsVO getdecommissionedInfo(Long id  );

    List<AirPlaneAndDeviceInfoVO> selectDeviceAppInfoByApp(Long catalogId);

    int updateAppNameStatusByPlaneCodes(DecommissionedByPlaneCodeRequest  request);

    List<AirPlaneAndDeviceDetailInfoVO> getDeviceAppAirplaneAndDeviceInfoByAppName(Long catalogId, String deviceSn, String planeCode);

    int updateAppNameStatusByDeviceSn(DecommissionedByPlaneCodeandDeviceInfoRequest request);
}
